package main

import (
	"fmt"
	"os"
	"os/signal"
	"syscall"
)

func main() {
	c := make(chan os.Signal)
	signal.Notify(c, syscall.SIGHUP)

	//signal.Notify(c, syscall.SIGHUP, syscall.SIGUSR2)  //监听指定信号

	s := <-c //阻塞直至有信号传入
	fmt.Println("get signal:", s)
}

/*
1.首先系统接收到ctrl+c的指令，signal接收到该指令。
2.signal执行 原先堵塞的 s:=<-c 这步骤，并关闭 shutdown 通道。
3.打印 相关消息
4.若去掉  time.sleep(100) 则有可能上述协程未执行完成，程序就不输出。

*/
